home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Delphi Developer's Kit 1996
/
Delphi Developer's Kit 1996.iso
/
power
/
simage
/
readme.txt
< prev
next >
Wrap
Text File
|
1995-12-22
|
4KB
|
100 lines
This package contains:
A new component decended from TImage called TSImage, The 'S' is for
auto-sizing.
It was designed for my needs in a recent app. Thus it is fairly
specific to what I needed to do: display 256 color bitmaps which
are stored in files.
Instead of using TImage.Picture.loadfromfile('') you use
TSImage.ChangeFromFile(
const FileName : string;
Crop : Trect;
Show_Cropped : boolean;
Actual_Size : boolean);
TSimage will automatically (and CLEANLY) remove any currently displayed
image and displayed the new image, scaled bigger or SMALLER to fit in
the designed size of the TSimage.
The above words 'CLEANLY' and 'SMALLER' are two things TImage doesn't
do out-of-the-box. To do it cleanly you need to learn a trick and to
display it smaller you need to work around a bug (Stretch property
doesn't work when squeezing).
The auto-sizing is activated by the 'Actual_Size : boolean' parameter.
Any property settings for 'AutoSize, Stretch, or Center' are ignored.
You can also provide a crop rectangle that is the area of interest
in the bitmap. It is then this area that is auto-sized to the designed
size of the TSImage. The auto-sizing maintains the aspect ratio of the
bitmap. This is an enhancement above what TImage can do.
The cropping is activated by the 'Show_Cropped : boolean' parameter.
A built-in 'crop tool' allows the user at runtime to frame the
rectangle of interest in the bitmap.
procedure croptool_on;
procedure croptool_off(
var changed : boolean;
var Crop : Trect);
The above 2 methods activate the crop tool and return the chosen Trect.
The demo app BMPView shows how to use these methods, a real app would
probabily save any user selected crop rect in a database, associated
with the filename of the BMP file.
The following method is used when you want to move the image in one
TSimage into another. The demo program BMPVIEW uses this to implement
the zoom to full screen capability.
procedure ReplaceWith(
fromImage : TSimage;
Crop : Trect;
Show_Cropped : boolean;
Actual_Size : boolean);
The following method is used when you want to redraw the image in a
TSimage to change the crop rect or display mode booleans.
procedure ReDraw(
Crop : Trect;
Show_Cropped : boolean;
Actual_Size : boolean);
See the demo app BMPView.exe and the source for further details.
In the demo app, make sure you click on the image to see it zoom
to full screen, and resize the form to see how the image window
resizes. Plus load a bitmap that is larger than the window and
select 'actual size' to see the use of scroll bars.
Borland's Graphics.pas unit makes some assumptions dealing with
BMP files that have proved incorrect. If you have BMP files
that display correctly in other apps, by you get a
Out-Of-System-Resources when you display them in Delphi, you
could be running into this problem. Below is a source code
change you can make to graphics.pas to solve this class of
problems. The BMPview.exe demo program has been compiled with
this patch in place.
comment out lines 2099 and 2100 in graphics.pas:
Dec(ImageSize, SizeOf(TBitmapInfoHeader) + Size);
(* {never trust biSizeImage - prp01}
if biSizeImage <> 0 then
if biSizeImage < ImageSize then ImageSize := biSizeImage;
*)
BitsMem := MemAlloc(ImageSize);
Released to the public 1-Jun-95 by Paul Peterson.
Please report any problem (or enhancements you make) to 72371,1136
via CIS Mail.
Thank You.
Later,
Paul